// 元转万元，保留 6 位小数并去掉末尾 0
export const turnWanyuan = (value) => {
    // 尝试将传入的值转换为数字
    let num;
    if (typeof value === 'number') {
        num = value;
    } else if (typeof value === 'string') {
        num = parseFloat(value);
        if (isNaN(num)) {
            // 如果字符串无法转换为数字，直接返回原数据
            return value;
        }
    } else {
        // 如果传入的值既不是数字也不是字符串，直接返回原数据
        return value;
    }

    // 将数字转换为以万元为单位，并保留 6 位小数
    const formattedNum = (num / 10000).toFixed(6);

    // 去掉尾数为 0 的部分
    let result = formattedNum.replace(/(\.0+)$/, '');
    // 若去掉 0 后只剩小数点，将其去掉
    result = result.replace(/\.$/, '');

    // 处理小数点后多余的 0
    if (result.includes('.')) {
        result = result.replace(/0+$/, '').replace(/\.$/, '');
    }

    return result;
};
console.log(turnWanyuan(4950101.1))
// 万元转元
export const turnyuan = (value) => {
    // 尝试将传入的值转换为数字
    let num;
    if (typeof value === 'number') {
        num = value;
    } else if (typeof value === 'string') {
        num = parseFloat(value);
        if (isNaN(num)) {
            // 如果字符串无法转换为数字，直接返回原数据
            return value;
        }
    } else {
        // 如果传入的值既不是数字也不是字符串，直接返回原数据
        return value;
    }

    // 将以万元为单位的数值转换为以元为单位
    const result = num * 10000;

    // 判断结果是否为整数
    if (Number.isInteger(result)) {
        return result;
    }

    // 若不是整数，保留两位小数
    return parseFloat(result.toFixed(2));
};

// 处理对象数据，将相关字段从万元转换为元
export function convertOutboundFeeToYuan(data) {
    const newData = { ...data };
    // // 处理外层对象的相关金额字段
    // ['outFee', 'availableAllocatedAmount', 'isOutFee', 'outFeeIncheck'].forEach(field => {
    //     if (newData[field]) {
    //         newData[field] = turnyuan(newData[field]);
    //     }
    // });

    // 处理 projectOutboundList 数组中的 outboundFee 字段
    if (newData.projectOutboundList) {
        newData.projectOutboundList = newData.projectOutboundList.map(item => {
            const newItem = { ...item };
            if (newItem.outboundFee) {
                newItem.outboundFee = turnyuan(newItem.outboundFee);
            }
            return newItem;
        });
    }
    return newData;
}
// 处理对象数据，将相关字段从元转换为万元
export function convertOutboundFeeToWanYuan(data) {
    const newData = { ...data }; // 复制数据以避免修改原始对象
    if (newData.projectOutboundList && Array.isArray(newData.projectOutboundList)) {
        newData.projectOutboundList = newData.projectOutboundList.map(item => {
            const newItem = { ...item };
            if (typeof newItem.outboundFee === 'string') {
                // 将以元为单位的字符串转换为以万元为单位的 number 类型
                newItem.outboundFee = parseFloat(newItem.outboundFee) / 10000;
            }
            return newItem;
        });
    }
    return newData;
}